/****************************************************************

this file is part of Music Practice Audio Player
Copyright (C)2012 Serhii Ratsyborynskyi (ratz@live.ru)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

******************************************************************/

#ifndef MPAQTBASEPLAYER_HPP
#define MPAQTBASEPLAYER_HPP

#include <QObject>
#include <QFile>
#include <QtMultimedia/QMediaPlayer>
#include "Core/MPAFile.hpp"

class QMediaContent;

namespace AudioCore
{

class MPAQtBasePlayer : public QObject
{
    Q_OBJECT

public:

    MPAQtBasePlayer( QObject * parent = 0);
    MPAQtBasePlayer( const QStringList & files, QObject * parent = 0);

signals:

    void signalMediaLoaded( QStringList channelList );

    void signalReady( bool ready );

public slots:

    void slotSetMedia(QString file);

    void slotMute(QList<bool> channels );

    void slotSetChannelVolume(QList<int> volumeList );

    void slotPlay();

    void slotStop();

    void slotPause();

    void slotVolume(int volume);

    void slotStatusChanged(QMediaPlayer::MediaStatus status);


private:

    QMediaPlayer * getPlayer( const QString & path );

    QVector<QMediaPlayer *> mpPlayerList;

    int                     mReadySignals;

    int                     mAbsVolume;

    QStringList             mChannelList;


};

}

#endif // MPAQTBASEPLAYER_HPP
